include এবং extend রুবির module ব্যবহারের জন্য দুটি গুরুত্বপূর্ণ কিওয়ার্ড। এগুলি ক্লাসের মধ্যে মডিউল বা তার ফিচার অন্তর্ভুক্ত (include) বা প্রসারিত (extend) করতে ব্যবহৃত হয়। include ব্যবহার করলে মডিউলের মেথডগুলো ক্লাসের ইনস্ট্যান্স মেথড হিসেবে পাওয়া যায়, এবং extend ব্যবহার করলে মডিউলের মেথডগুলো ক্লাসের ক্লাস মেথড হিসেবে পাওয়া যায়।
include Keyword:
include কিওয়ার্ড মডিউলকে একটি ক্লাসের মধ্যে অন্তর্ভুক্ত করতে ব্যবহৃত হয়, যাতে মডিউলের সব মেথড ক্লাসের ইনস্ট্যান্স মেথড হিসেবে অ্যাক্সেসযোগ্য হয়।
উদাহরণ:
module Greet
def greet_user(name)
puts "Hello, #{name}!"
end
end
class User
include Greet # মডিউল অন্তর্ভুক্ত করা হচ্ছে
def initialize(name)
@name = name
end
def display_name
puts "User's name is #{@name}"
end
end
user = User.new("Alice")
user.greet_user("Alice") # Output: Hello, Alice!
user.display_name # Output: User's name is Aliceএখানে, Greet মডিউলটি User ক্লাসে include করা হয়েছে, যাতে greet_user মেথড User ক্লাসের ইনস্ট্যান্স মেথড হিসেবে ব্যবহার করা যায়। এই কারণে, আমরা user.greet_user("Alice") কল করতে পারি।
extend Keyword:
extend কিওয়ার্ড মডিউলকে একটি ক্লাসে বা অবজেক্টে class-level মেথড হিসেবে অন্তর্ভুক্ত করতে ব্যবহৃত হয়, অর্থাৎ মডিউলের মেথডগুলো ক্লাসের সিঙ্গেলটন (class-level) মেথড হিসেবে উপলব্ধ হয়।
উদাহরণ:
module MathOperations
def square(number)
number ** 2
end
end
class Calculator
extend MathOperations # মডিউল ক্লাসের সিঙ্গেলটন মেথড হিসেবে অন্তর্ভুক্ত করা হচ্ছে
end
puts Calculator.square(5) # Output: 25এখানে, MathOperations মডিউলটি Calculator ক্লাসে extend করা হয়েছে, যার ফলে square মেথডটি Calculator ক্লাসের class-level মেথড হিসেবে কাজ করে। তাই আমরা Calculator.square(5) কল করতে পারি।
include এবং extend এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | include | extend |
|---|---|---|
| ব্যবহার | ক্লাসের ইনস্ট্যান্স মেথড তৈরি করতে ব্যবহৃত হয়। | ক্লাসের ক্লাস মেথড তৈরি করতে ব্যবহৃত হয়। |
| মেথড অ্যাক্সেস | মডিউলের মেথডগুলো ক্লাসের অবজেক্ট বা ইনস্ট্যান্স থেকে অ্যাক্সেস করা যায়। | মডিউলের মেথডগুলো ক্লাসের নাম বা সিঙ্গেলটন অবজেক্ট থেকে অ্যাক্সেস করা যায়। |
| কোডের অবস্থান | মডিউলকে ইনক্লুড করলে, মেথডগুলো ইনস্ট্যান্সে যোগ হয়। | মডিউলকে এক্সটেন্ড করলে, মেথডগুলো ক্লাসে যোগ হয়। |
সারসংক্ষেপ:
includeব্যবহৃত হয় ক্লাসের ইনস্ট্যান্স মেথড হিসেবে মডিউলের মেথড অন্তর্ভুক্ত করতে।extendব্যবহৃত হয় ক্লাসের ক্লাস মেথড হিসেবে মডিউলের মেথড অন্তর্ভুক্ত করতে।
রুবিতে include এবং extend কিওয়ার্ড দুটি খুবই শক্তিশালী এবং এটি কোডের পুনঃব্যবহারযোগ্যতা এবং কার্যকারিতা বৃদ্ধি করতে সাহায্য করে।
Read more